package cn.itrip.common;

import com.sun.mail.util.MailSSLSocketFactory;

import java.security.GeneralSecurityException;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailUtil {

           // 发件人电子邮箱
           private static final String from = "364927954@qq.com";

            // 指定发送邮件的主机为 localhost
           private static final String host = "smtp.qq.com";




            // 获取默认session对象
           private static Session getSession(){
               // 获取系统属性
               Properties properties = System.getProperties();

               // 设置邮件服务器
               properties.setProperty("mail.smtp.host", host);

               properties.put("mail.smtp.auth", "true");
               MailSSLSocketFactory sf = null;
               try {
                   sf = new MailSSLSocketFactory();
               } catch (GeneralSecurityException e) {
                   e.printStackTrace();
               }
               sf.setTrustAllHosts(true);
               properties.put("mail.smtp.ssl.enable", "true");
               properties.put("mail.smtp.ssl.socketFactory", sf);
               Session session = Session.getDefaultInstance(properties, new Authenticator() {
                    public PasswordAuthentication getPasswordAuthentication() {
                          return new PasswordAuthentication("364927954@qq.com", "cgowlvmrcbihcace"); //发件人邮件用户名、授权码
                     }
               });
               return session;
            }

           public static void sendMessage(String subject,String text,String to){
            try{

                Session session=getSession();
                // 创建默认的 MimeMessage 对象
                MimeMessage message = new MimeMessage(session);

                // Set From: 头部头字段
                message.setFrom(new InternetAddress(from));

                // Set To: 头部头字段
                message.addRecipient(Message.RecipientType.TO,
                        new InternetAddress(to));

                // Set Subject: 头部头字段
                message.setSubject(subject);

                // 设置消息体
                message.setText(text);

                // 发送消息
                Transport.send(message);
                System.out.println("Sent message successfully....");
            }catch (MessagingException mex) {
                mex.printStackTrace();
            }
        }
}
